home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 18 / Mac Magazin and MacEasy Magazine CD - Issue 18.iso / Utilities / FileIndexer1.2 / FileIndexer 1.2.doc < prev    next >
Text File  |  1996-01-11  |  6KB  |  135 lines

  1. FileIndexer 1.2
  2. ---------------
  3.  
  4. I really miss OnLocation. (It doesn't run reliably under system 7.5).
  5.  
  6. This is my simplistic attempt to knock up some of the key functionality I'm looking for.
  7.  
  8. In a multi-user environment, where you have budget for a server, I recommend
  9. AppleSearch for indexing your documents. I wanted to have a way to quickly retrieve
  10. a list of documents on a mounted disk that contain a given word.
  11.  
  12. FileIndexer trades memory for speed. It builds a sorted list of unique words
  13. (not case sensitive), and then keeps a list of the files that contain each word.
  14.  
  15. This list of lists is kept in memory. This makes it VERY fast to do the binary search.
  16. You can save the index to a file and load it reasonably quickly.
  17.  
  18. Run FileIndexer, choose Index folder, and select the top folder in a tree of
  19. text files to be indexed. Claris XTND can be used (if available) to read documents.
  20. You need to turn it on in the preferences dialog to use it. Note that some documents,
  21. in my experience, will hang XTND. (I have no control over this). If the beach ball 
  22. cursor times out and stops, you are probably stuck. The offending document name
  23. is left displayed in the status field.
  24.  
  25. When done, type a single word into the find field and press return. A list of all
  26. the files that contain that word will be displayed. In brackets you'll see the number
  27. of times the word is found in that file. Also shown is the modification date of 
  28. the file and then the full path to the file.
  29.  
  30. Double-click on the file to open the first 32k of it in a text window. You can choose 
  31. to view the document in it's original app or the app of your choice.
  32.  
  33. From the text window you can use Find or Find again (command-G) to locate the word
  34. you searched for.
  35.  
  36. I built a PowerPC native version but it was slower! Probably due to my heavy use
  37. of the non-native file manager.
  38.  
  39. Limitations
  40. -----------
  41.  
  42. o Only searches for one word at a time.
  43. o Can't currently index read only volumes.
  44.  
  45. To Do
  46. -----
  47.  
  48. o Could be AppleScriptable with almost no work.
  49. o Index the "sound" of words (use soundex etc).
  50. o Move the in memory list to a disk based database!
  51. o Handle multiple words with AND and OR.
  52. o Able to exclude certain folders containing a given string.
  53. o Auto find the searched for word when opening the document.
  54. o Very slow when closing a document, need fast alloc/free for many small objects.
  55.  
  56. Tools
  57. -----
  58.  
  59. o Metrowerks Codewarrior 7
  60. o MacApp 3.3
  61. o ObjectMaster
  62.  
  63. History    (DD/MM/YY)
  64. -------
  65.  
  66. 22/12/95    Turned off qTheDebugger & qInspector
  67. 27/12/95    Ditched Insert() when reading files. Load speed 21s down to 3s!
  68. 27/12/95    Sped up indexing thanks to Metrowerks code profiler.
  69.             Release of version 1.0
  70. 28/12/95    Started on 1.1
  71.             Indexing done in a cohandler so time is given to other apps.
  72.             It's a bit slower but is nicer to other apps and allows context switches etc.
  73.             Plays a sound when indexing is done.
  74.             Reduced RAM overhead of index slightly.
  75.             Added a "stop words" feature to exclude common non-interesting words.
  76.             Added printing of the document window.
  77. 30/12/95    Release of version 1.1
  78.             Started on 1.2b1
  79. 06/01/96    Fixed write to nil during startup.
  80.             Added extra preferences: stem, xtnd, view options. (Doc version to 3).
  81. 07/01/96    Added support for Claris XTND to index and display documents.
  82. 07/01/96    Shipped 1.2b1 to beta testers, started 1.2b2
  83.             Added arrowKeyselection behavior to file list view.
  84.             Return and enter now simulate a double click.
  85.             Did some work on the printing, headers & footers etc.
  86.             Fixed home & end keys by applying patch to UScroller.
  87.             Fixed the open in chosen app feature.
  88.             Made the document dirty after preference change.
  89.             Switched to a Hash index rather than storing words.
  90.             - Old test index: 275k, now is 176k
  91.             - This produces some bogus hits, will look for better hash functions
  92.             Bumped file version as no longer compatable.
  93. 08/1/96        - Bumped to 1.2b3
  94.             - Found a problem with errors during XTND reads.
  95.             - Added user option to not use XTND, Changed file version.
  96.             - Switched to MacApp's memory allocator.
  97.             - Added a filter to remove TEXT files that shouldn't be indexed,
  98.               such as acrobat '.pdf' files. (Others??)
  99.             - Reduced index size by removing hit count field. 275k -> 176k -> 154k
  100.             - Fixed a bug when indexing a single file.
  101.             - Fixed a bug relating to the stop words compare function.
  102.             - Removed the show word list functionality (no point with hashing).
  103.             - Added a warning if you try to look for more than one word.
  104. 09/01/96    - Cleaned up what happens if you close a doc that's indexing.
  105.             - Fixed up out of memory failure crash. Now gives message.
  106.             - Improved the open in app etc functions that sometimes didn't correctly
  107.               find the Finder process.
  108. 10/01/96    - Bumped to 1.2b4
  109.             - Changed doc version number
  110.             - Tried Dave Abraham's better hash function
  111.             - Found a bug in AddWord(). (Wrong compare parameter structure used).
  112.             - Implemented word stemming
  113.             - Shipped a version to Al.
  114.             - Improved the about box.
  115. 11/01/96    - Bumped to 1.2 final ready for testing and release.
  116.             - Release of 1.2 to internet.
  117.  
  118.  
  119. (c) 1995,1996 Peter Marks
  120. Suggestions for future enhancements most welcome, but I make no guarantee of support.
  121. This freeware is supplied as is, use at your own risk.
  122. Please contact me for permission to include on commercial collections.
  123.  
  124. mailto: Peter.Marks@PoBox.com
  125.  
  126. Acknowledgements
  127. ----------------
  128.  
  129. Thanks for support to:
  130.  
  131. Gregory Kearney, Allan Herman, Alastair Rankine, Geert Jan Bex, Keith F. Batchelder, 
  132. tony stevenson, Federico Cavaglia', Farhad Anklesaria, Dave Abrahams, MetaTheory, 
  133. and others!
  134.  
  135.